<?php
	include_once("MensajeDao.php");
	include_once("Connection.php");

	class MensajeDaoIMP implements MensajeDao{
		private $mensaje;
		private $colleccion;

		public function EnviarMensaje($m){
			$db = Connection::getConnection();
			$this->colleccion = $db->Mensaje;
			if(get_class($m)!="Mensaje"){
				//echo("ERROR: La clase no es Mensaje");
				return(false);
			}
			else if(is_null($m )){
				//echo("ERROR: El mensaje es nulo");
				return(false);
			}
			else{

				$date=new MongoDate(strtotime(date('c')));
				$m->setFecha($date);


				$obj=array(
					"PersonaRemitente" => $m->getPersonaRemitente(),
					"PersonaDestinatario" => $m->getPersonaDestinatario(),
					"Mensaje"=> $m->getMensaje(),
					"Fecha"=>  $m->getFecha()
				);
				$this->colleccion->insert($obj);
				return(true);
			}
		}

		public function ListarMensajePorDestinatario($remitente,$desinatario){

			$db = Connection::getConnection();
			$this->colleccion = $db->Mensaje;

			if(get_class($desinatario)!="Persona"){
				//echo("ERROR: La clase no es Persona 1");
				return(false);
			}
			else if(is_null($desinatario )){
				//echo("ERROR: la persona es nulo 1");
				return(false);
			}
			else if(get_class($remitente)!="Persona"){
				//echo("ERROR: La clase no es Persona 2");
				return(false);
			}
			else if(is_null($remitente )){
			//	echo("ERROR: la persona es nulo 2");
				return(false);
			}
			else{
				$js = "function() {
				    return this.PersonaDestinatario == '".$desinatario->getEmail()."';
				}";
				//echo $js;
				$i=0;
				$arr=null;
				$cursor = $this->colleccion->find(array('$where' => $js));
				if($cursor==null){
				//	echo "<br>Es NULO<br>";
				}
				else{
				//echo "<br>No es NULO<br>";
				foreach ($cursor as $obj) {
					//echo "I: ".$i;
					$mensaje=new Mensaje();
					$mensaje->setPersonaDestinatario($obj["PersonaDestinatario"] );
					$mensaje->setPersonaRemitente($obj["PersonaRemitente"]);
					$mensaje->setMensaje($obj["Mensaje"]);
					$date=new MongoDate();
					$date=$obj["Fecha"];
					$mensaje->setFecha(date('Y-M-d h:i:s', $date->sec));
					$arr[$i]=$mensaje;
					$i++;
				}

				return($arr);
				}
			}
		}


		public function ListarMensajePorRemitente($remitente,$desinatario)
		{
			$js = "function() {
			    return this.PersonaDestinatario == '".$desinatario->getEmail()."'&& this.PersonaRemitente == '".$remitente->getEmail()."';
			}";

		}

	}


?>